%% Commands for drawing Amazon's boards
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{decorations.text}

% queens
\newcommand{\Queen}[2]{
    \path[draw, shading=ball, ball color=#1] #2 ++(-0.5, -0.5) circle (0.35);
}
\newcommand{\qw}[1]{\Queen{white}{#1}}
\newcommand{\qb}[1]{\Queen{black}{#1}}
% arrow
\newcommand{\arrow}[1]{
    \path[draw, fill, fill opacity=0.5, gray] #1 ++(-0.1, -0.1) rectangle +(-0.8, -0.8);
}
% move
\newcommand{\move}[3]{
    \path #1 ++(-0.5, -0.5) coordinate (from);
    \path #2 ++(-0.5, -0.5) coordinate (to);
    \path #3 ++(-0.5, -0.5) coordinate (shot);
    \draw [gray] (to) circle (0.2);
    \draw[gray, dashed] (from) -- (to);
    \draw[gray, dotted, ->>] (to) -- (shot);
    \path[draw, line width=1.5pt, gray] #3 ++(-0.3, -0.3) -- +(-0.4, -0.4)
                                        #3 ++(-0.7, -0.3) -- +(0.4, -0.4);
}

% board
\newcounter{mycount}
\newcommand{\board}[2]{
    \fill[yellow!10] (0, 0) rectangle (#1, #2);
    \draw[help lines] (0, 0) grid (#1, #2);

    \setcounter{mycount}{`A}

    \foreach \i in {1,...,#1}
        \path (\i - 0.5, -0.4) node {\char\value{mycount}\addtocounter{mycount}{1}};

    \foreach \i in {1,...,#2}
        \path ( - 0.4, \i - 0.5) node {\i};
}

